B树
B树也叫B-树,与二叉树相比,B树其实就是多叉树。
二叉树上,每个节点中只有1个元素,2个子节点,而一棵N阶的B树中,每个节点最多N-1个元素,N个子节点,且B树每条路径的高度是一样的,最底层的节点称之为叶子节点
如下图就是一个4阶的B树:
B+树
B+树是B树的一个变种,它与B树最大的区别是:
- B+树的叶子节点拥有所有的数据,非叶子节点仅仅起到一个索引的作用
- B+树的叶子节点通过指针连接
例如将[1,2,3,4,5,6,7,12,23]
分别插入B树和B+树,分别如下:
从上图可以看出,B树的每个节点都存有数据,且不重复,而B+树的非叶子作为索引,叶子节点存数据,是可能重复的
MySQL数据库就是使用了B+树作为数据存储的结构,由于叶子节点形成了一个链表,因此做范围查询也十分的方便
关于MySQL可以参考:MySQL数据与索引